package com.example.myapplication.slice;

import com.example.myapplication.ResourceTable;
import com.example.myapplication.beans.Product;
import com.example.myapplication.beans.ResultVO;
import com.example.myapplication.utils.ApiUtil;
import com.example.myapplication.utils.HttpRequestUtil;
import com.example.myapplication.utils.LoadNetImageUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.IntentParams;
import ohos.agp.components.*;
import ohos.agp.render.render3d.util.SceneUtil;
import ohos.app.dispatcher.task.TaskPriority;

import java.io.StringReader;
import java.sql.SQLOutput;
import java.util.List;
import java.util.Map;

public class SearchAbilitySlice extends AbilitySlice {

    private Gson gson = new Gson();

    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        setUIContent(ResourceTable.Layout_ability_search);

//        //进行搜索操作
//        Button searchBtn = findComponentById(ResourceTable.Id_search_btn);
//        TextField searchText = findComponentById(ResourceTable.Id_index_search_textField);
//
//        searchBtn.setClickedListener(component -> {
//            //获取输入的搜索关键字
//            String kw = searchText.getText();
//            getGlobalTaskDispatcher(TaskPriority.DEFAULT).asyncDispatch(() -> {
//                //请求结果进行查询
//                String url = ApiUtil.BASE_PATH + "product/...?keyWord="+kw+"&limt=10&num=1";
//                String s = HttpRequestUtil.sendGetRequest(this, url);
//                //处理数据
//                ResultVO resultVO = gson.fromJson(s,ResultVO.class);
//                if (resultVO.getCode() == 200){
//                    //根据返回数据类型设置
//                    Map data = (Map) resultVO.getData();
//                    //总记录数
//                    Double count = (Double) data.get("count");
//                    //总页数
//                    Double pageCount = (Double) data.get("pageCount");
//                    //数据 商品集合
//                    List<Product> list = gson.fromJson(gson.toJson(data.get("list")),new TypeToken<List<Product>>(){}.getType());
//                    //测试
////                    for (int i = 0; i < list.size(); i++) {
////                        System.out.println(list.get(i));
////                    }
//
//                    //由于下边三级分类处理时也要用到以下代码，所以将其封装到方法中，以便调用
//                    renderData(list);
//
//                }
//            });
//
//        });
//
//        //当从分类页面点击三级分类跳转到此页面时，会传递一个三级分类的id，在此接收该参数
//        IntentParams params = intent.getParams();
//        if (params != null){
//            String categoryId = (String)params.getParam("categoryId");
//            if (categoryId != null){
//                //当category不为空时，表示是在分类页面点击的三级分类跳转过来的
//                //根据此id查询商品信息并显示
//                getGlobalTaskDispatcher(TaskPriority.DEFAULT).asyncDispatch(() -> {
//                    String urlString = ApiUtil.BASE_PATH + "product/..." + categoryId + "?limit=10&...";
//                    String s = HttpRequestUtil.sendGetRequest(this, urlString);
//                    //System.out.println(s);
//                    ResultVO resultVO = gson.fromJson(s,ResultVO.class);
//                    if (resultVO.getCode() == 200){
//                        Map<String,Object> dataMap = (Map<String, Object>) resultVO.getData();
//                        String listStr = gson.toJson(dataMap.get("list"));
//                        List<Product> productList = gson.fromJson(listStr,new TypeToken<List<Product>>(){}.getType());
//                        //测试
////                        for (int i = 0; i < productList.size(); i++) {
////                            System.out.println(productList.get(i));
////                        }
//
//                        //渲染查询结果
//                        renderData(productList);
//
//                    }
//                });
//            }
//        }
//    }
//
//    //将list数据渲染到模板中
//    private void renderData(List<Product> list){
//        //放到UI线程中
//        getUITaskDispatcher().asyncDispatch(() -> {
//            //将list集合中的商品信息显示到id=“search_result_tablelayout"的布局中
//            TableLayout table = findComponentById(ResourceTable.Id_search_result_tableLayout);
//
//            table.removeAllComponents();
//            for (int i = 0; i < list.size(); i++) {
//                Product product = list.get(i);
//                //找到模板，此处可以使用首页列表的模板
//                DirectionalLayout template = (DirectionalLayout) LayoutScatter.getInstance(this).parse(ResourceTable.Layout_product_list_item_template, null, false);
//                Image image = template.findComponentById(ResourceTable.Id_product_item_image);
//                Text text1 = template.findComponentById(ResourceTable.Id_product_item_name_text);
//                Text text2 = template.findComponentById(ResourceTable.Id_product_item_price_text);
//                //渲染图片组件
//                if (product.getImgs() != null && product.getImgs().size() > 0) {
//                    String imgUrl = ApiUtil.IMG_BASE_PATH + product.getImgs().get(0).getUrl();
//                    LoadNetImageUtil.loadImg(this, imgUrl, image);
//                } else {
//                    image.setPixelMap(ResourceTable.Media_L1);
//                }
//                //获取商品名称
//                text1.setText(product.getProductName());
//                //获取商品中第一个套餐的价格
//                //可能会有的商品没有套餐
//                double price = product.getSkus()!=null?product.getSkus().get(0).getSellPrice():8.88;
//                text2.setText("￥" + price);
//                //将模板添加到组件中
//                table.addComponent(template);
//                //点击商品模板，跳转到商品详情页，并将商品id传递到详情页面
//                template.setClickedListener(component1 -> {
//                    Intent intent1 = new Intent();
//                    intent1.setParam("productId",product.getProductId());
//                    present(new DetailAbilitySlice(),intent1);
//                });
//
//            }
//        });
    }
}
